<?php

/**
 * Permite hacer operaciones con la tabla subcalle de la base de datos
 * @package simertweb 
 * @subpackage models 
 * @category Administración
 * @author Grecia Espinoza <mrcl2587@gmail.com>
 * @author Juan Maldonado  <jgmaldonadoj@gmail.com>
 * @version 1.0  
 */
class Mcoordenadas extends CI_Model {

    public function __construct() {
        parent::__construct();
        $this->load->model('mzona');
        $this->load->model('mcalles');
        $this->load->model('msubcalles');
        $this->load->model('mhistorico');
        $this->load->model('mpersona');
        $this->load->model('mempleado');
    }

    /**
     * Guarda una subcalle
     */
    public function guardarSubcalle() {
        //guarda los datos en la bd
        $data = array(//obtiene los datos del formulario y los almacena en las variables  
            'principal' => $this->mcalles->indice($_POST['calle']), //obtiene el id de la calle
            'secundaria1' => $this->mcalles->indice($_POST['sec_1']), //obtiene el id de la calle
            'X1' => $_POST['lon_1'],
            'Y1' => strtoupper($_POST['lat_1']),
            'secundaria2' => $this->mcalles->indice($_POST['sec_2']), //obtiene el id de la calle
            'X2' => strtolower($_POST['lon_2']),
            'Y2' => strtoupper($_POST['lat_2']),
            'espAzules' => strtolower($_POST['azules']),
            'orientacion' => $_POST['orientacion'],
            'idZona' => $this->mzona->indice($_POST["zona"])//obtiene el id de la zona
        );
        $this->db->insert('subcalle', $data); //guarda los datos en la bd
        $this->mhistorico->guardar_acceso($this->msubcalles->obtener_idSubcalle($this->mcalles->indice($_POST['calle']), $this->mcalles->indice($_POST['sec_1']), $this->mcalles->indice($_POST['sec_2']), $_POST['orientacion']), "Creación de una subcalle");
    }

    /**
     * Obtiene los  puntos de ubicación de un controlador
     * @return array
     */
    function obtenerCoord() {
        date_default_timezone_set("America/Guayaquil");
        $fecha = date('Y-m-d');
//        $fecha = date('2013-11-08');
        $hora = $this->segundosAhoras($this->horasAsegundos() - 60);
        $this->db->where('fecha', $fecha);
//        $this->db->where('hora >=', $hora);
//        $this->db->where('hora >', '07:1:00');
//        $datos = $this->db->get('datoposicional')->result(); //almacena los datos con la fecha actual
        $d = $this->db->get('posicionactual')->result();


        $array = array();

        foreach ($d as $value) {
            $coordenadas = array(
                'alarma' => $value->alarma,
                'latitud' => $value->latitud,
                'longitud' => $value->longitud,
                'controlador' => $value->idControlador,
                'nombre' => $this->obtenerControlador($value->idControlador)
            );
            array_push($array, $coordenadas);
        }
//        var_dump($array);
        return $array;
    }

    /**
     * Convierte la hora actual a segundos
     * @return type date
     */
    function horasAsegundos() {
        return date('H') * 3600 + date('i') * 60;
    }

    
    /**
     * Convierte los segundos a horas
     * @param type $seg son los segundos
     * @return type string
     */
    function segundosAhoras($seg) {
        $horas = floor($seg / 3600);
        $minutos = floor(($seg - ($horas * 3600)) / 60);
        //$segundos = $seg - ($horas * 3600) - ($minutos * 60);
        if ($horas < 10) {
            $horas = '0' . $horas;
        }
        if ($minutos < 10) {
            $minutos = '0' . $minutos;
        }

        return $horas . ':' . $minutos . ':' . '00';
    }

    /**
     * Obtiene el nombre de un controlador
     * @param type $id es el id el controlador
     * @return type string
     */

    function obtenerControlador($id) {
        $this->db->where('idControlador', $id);
        $cont = $this->db->get('controlador')->row();

        $this->db->where('idEmpleado', $cont->Empleado_idEmpleado);
        $emp = $this->db->get('empleado')->row();

        $this->db->where('idPersona', $emp->idPersona);
        $per = $this->db->get('persona')->row();

        return $per->nombre . ' ' . $per->apellido;
    }

}

?>
